.\"
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for
.\" permission to reproduce portions of its copyrighted documentation.
.\" Original documentation from The Open Group can be obtained online at
.\" http://www.opengroup.org/bookstore/.
.\"
.\" The Institute of Electrical and Electronics Engineers and The Open
.\" Group, have given us permission to reprint portions of their
.\" documentation.
.\"
.\" In the following statement, the phrase ``this text'' refers to portions
.\" of the system documentation.
.\"
.\" Portions of this text are reprinted and reproduced in electronic form
.\" in the SunOS Reference Manual, from IEEE Std 1003.1, 2004 Edition,
.\" Standard for Information Technology -- Portable Operating System
.\" Interface (POSIX), The Open Group Base Specifications Issue 6,
.\" Copyright (C) 2001-2004 by the Institute of Electrical and Electronics
.\" Engineers, Inc and The Open Group.  In the event of any discrepancy
.\" between these versions and the original IEEE and The Open Group
.\" Standard, the original IEEE and The Open Group Standard is the referee
.\" document.  The original Standard can be obtained online at
.\" http://www.opengroup.org/unix/online.html.
.\"
.\" This notice shall appear on any product containing this material.
.\"
.\" The contents of this file are subject to the terms of the
.\" Common Development and Distribution License (the "License").
.\" You may not use this file except in compliance with the License.
.\"
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
.\" or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions
.\" and limitations under the License.
.\"
.\" When distributing Covered Code, include this CDDL HEADER in each
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
.\" If applicable, add the following below this CDDL HEADER, with the
.\" fields enclosed by brackets "[]" replaced with your own identifying
.\" information: Portions Copyright [yyyy] [name of copyright owner]
.\"
.\"
.\" Copyright 1989 AT&T
.\" Portions Copyright (c) 1992, X/Open Company Limited  All Rights Reserved
.\" Portions Copyright (c) 1982-2007 AT&T Knowledge Ventures
.\" Copyright (c) 2007, Sun Microsystems, Inc.  All Rights Reserved  Portions
.\" Copyright 2019 Robert Mustacchi
.\"
.Dd September 12, 2019
.Dt SLEEP 1
.Os
.Sh NAME
.Nm sleep
.Nd suspend execution for an interval
.Sh SYNOPSIS
.Nm sleep
.Ar time[suffix]
.Sh DESCRIPTION
.Nm
suspends execution for at least the time in seconds specified by
.Ar time
or until a
.Dv SIGALRM
signal is received.
The
.Ar time
operand can be specified as a non-negative floating point number but the
actual granularity depends on the underlying system.
The
.Ar time
operand may be passed as a decimal or hexadecimal string.
Other floating point values such as Inf or infinity are also honored.
.Pp
A single suffix may be applied to the
.Ar time
operand to represent units other than seconds.
Supported suffixes for the
.Ar suffix
operand include:
.Bl -tag -offset indent -width 6n
.It Sy s
Represents time in seconds.
.It Sy m
Represents time in minutes.
.It Sy h
Represents time in hours.
.It Sy d
Represents time in days.
.It Sy w
Represents time in weeks.
.It Sy y
Represents time in years.
.El
.Pp
The use of suffixes is generally not portable to other systems.
.Ss Signals
If the
.Nm
program receives a signal, unless it is the
.Dv SIGALRM
signal, it will follow with the default signal handling disposition.
If such a signal would interrupt the sleep, then the program may
terminate with an error.
.Sh EXIT STATUS
The following exit values are returned:
.Bl -inset
.It Sy 0
The execution was successfully suspended for at least
.Ar time
seconds, or a
.Dv SIGALRM
signal was received.
.It Sy >0
An error has occurred.
.El
.Sh EXAMPLES
.Sy Example 1
Suspending Command Execution
.Pp
The following example executes a command after a certain amount of time:
.Bd -literal -offset indent
example% \fB(sleep 105; \fIcommand\fR)&\fR
.Ed
.Pp
.Sy Example 2
Executing a Command Every So Often
.Pp
The following example executes a command every so often:
.Bd -literal -offset indent
example% \fBwhile true; do
        \fIcommand\fR
        sleep 37
done\fR
.Ed
.Pp
.Sy Example 3
Suspend command execution forever
.Po
or until a
.Dv SIGALRM
signal is received
.Pc
.Bd -literal
example% sleep Inf
.Ed
.Pp
.Sy Example 4
Suspending command execution for 0.5 seconds
.Pp
Suspending command execution for 0.5 seconds using an alternative
floating-point representation for the value "0.5".
.Bd -literal
example% printf "%a\en" 0.5
0x1.0000000000000000000000000000p-01
example% sleep 0x1.0000000000000000000000000000p-01
.Ed
.Sh ENVIRONMENT VARIABLES
See
.Xr environ 7
for descriptions of the following environment variables
that affect the execution of
.Nm :
.Ev LANG ,
.Ev LC_ALL ,
.Ev LC_MESSAGES ,
.Ev LC_NUMERIC ,
and
.Ev NLSPATH .
.Sh INTERFACE STABILITY
.Sy Committed
.Sh SEE ALSO
.Xr wait 1 ,
.Xr alarm 2 ,
.Xr nanosleep 3C ,
.Xr sleep 3C ,
.Xr environ 7
